package com.example.commons.config;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.security.core.GrantedAuthority;


/**
 * spring security 在反序列化的时候权限列表会丢失，原因是在spring序列化的时候遇到 GrantedAuthority 时会跳过字段不进行序列化
 * 解决方案：1、在验证过滤器或实现UserDetailsService的service里手动加载权限列表
 *         2、重新实现一个 SimpleGrantedAuthority 方法 实现GrantedAuthority接口，实体类中权限列表里指定类型为自己所创建的 SimpleGrantedAuthorityWrapper
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SimpleGrantedAuthorityWrapper implements GrantedAuthority {

    private String role;
    @Override
    public String getAuthority() {
        return role;
    }
}
